import Pretty.Defs.Resolve import Pretty.Supports.MeasRender import Pretty.Supports.ResolvePareto import Pretty.Supports.ResolveOptimality import Pretty.Claims.Widen /-! ## Optimality theorems -/ mutual /-- The optimality theorem (Theorem 5.7) -/ theoremResolve_optimal (Resolve_optimal: ∀ {α : Type} {F : Factory α} {d : Doc} {c i : ℕ} {ml : MeasureSet} {D : List Doc} {d_choiceless : Doc} {m : Meas}, Resolve F d c i ml → Widen d D → d_choiceless ∈ D → MeasRender F d_choiceless c i m → m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueh_print : Resolveh_print: Resolve F d c i mlFF: ?m.4dd: ?m.11cc: ?m.17ii: ?m.23ml) (ml: ?m.29h_widen : Widenh_widen: Widen d Ddd: ?m.11D) (D: ?m.38h_mem :h_mem: d_choiceless ∈ Dd_choiceless ∈d_choiceless: ?m.63D) (D: ?m.38h_render : MeasRenderh_render: MeasRender F d_choiceless c i mFF: ?m.4d_choicelessd_choiceless: ?m.63cc: ?m.17ii: ?m.23m) (m: ?m.102h_y :h_y: m.y ≤ F.Wm.y ≤m: ?m.102F.W) (F: ?m.4h_x :h_x: m.x ≤ F.Wm.x ≤m: ?m.102F.W) : ∃F: ?m.4msms: ?m.164h,h: ?m.169ml = MeasureSet.setml: ?m.29msms: ?m.164h ∧ ∃h: ?m.169m_better,m_better: ?m.204m_better ∈m_better: ?m.204ms ∧ dominatesms: ?m.164FF: ?m.4m_betterm_better: ?m.204m :=m: ?m.102Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_printα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_widenα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_mem?d_choiceless ∈ ?Dα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_renderMeasRender F ?d_choiceless ?c ?i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_ym.y ≤ F.Wα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_xm.x ≤ F.Wα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
sα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
cα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
iα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
Dα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
d_choicelessα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_printα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_widenα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_mem?d_choiceless ∈ ?Dα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_renderMeasRender F ?d_choiceless ?c ?i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_ym.y ≤ F.Wα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
h_xm.x ≤ F.Wα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
sα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
cα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
iα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
Dα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
s: String
h_print: Resolve F (Doc.text s) c i ml
h_widen: Widen (Doc.text s) D
d_choicelessGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_printα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_widenα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_mem?d_choiceless ∈ ?Dα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_renderMeasRender F ?d_choiceless ?c ?i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_ym.y ≤ F.Wα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_xm.x ≤ F.Wα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
cα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
iα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
Dα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
d_choicelessα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_printα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_widenα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_mem?d_choiceless ∈ ?Dα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_renderMeasRender F ?d_choiceless ?c ?i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_ym.y ≤ F.Wα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
h_xm.x ≤ F.Wα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
cα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
iα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
Dα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
D: List Doc
d_choiceless: Doc
m: Meas
h_mem: d_choiceless ∈ D
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_print: Resolve F Doc.nl c i ml
h_widen: Widen Doc.nl D
d_choicelessGoals accomplished! 🐙α✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
ml: MeasureSet
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
h_print: Resolve F (Doc.nest n d) c i ml
L✝: List Doc
h_widen: Widen d L✝
h_mem: ∃ a, a ∈ L✝ ∧ Doc.nest n a = d_choiceless
w✝: Doc
h_left: w✝ ∈ L✝
h_right: Doc.nest n w✝ = d_choiceless
nestα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.nest n a = Doc.nest n w✝
ms✝: MeasureSet
h✝: Resolve F d c (i + n) ms✝
nest.nest∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) ms✝ = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.nest n a = Doc.nest n w✝
ms': MeasureSet
h': Resolve F d c (i + n) ms'∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) ms' = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
ms': MeasureSet
h': Resolve F d c (i + n) ms'
h_mem: w✝ ∈ L✝∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) ms' = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.nest n a = Doc.nest n w✝
ms': MeasureSet
h': Resolve F d c (i + n) ms'∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) ms' = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)
tainted∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d c (i + n) (MeasureSet.set ms✝ h✝)
set∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.nest n a = Doc.nest n w✝
ms': MeasureSet
h': Resolve F d c (i + n) ms'∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) ms' = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h✝: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.W
nest∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.W
nest∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.W
nest∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.W
nest∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.WMeasRender F w✝ c (i + n) ?m.14220Goals accomplished! 🐙α✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.W
this: { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.y ≤ F.W → { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.x ≤ F.W → ∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ } = true
nest∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: y✝ ≤ F.W
h_x: x✝ ≤ F.W
this: y✝ ≤ F.W → x✝ ≤ F.W → False
nest∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c (i + n) (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.nest n a = Doc.nest n w✝
ms': MeasureSet
h': Resolve F d c (i + n) ms'∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) ms' = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')α✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h✝: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.W
nestα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.W
nestα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.W
h_now: ∃ ms h, MeasureSet.set printed_ms h_render' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ } = true
nestα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.W
h_now: ¬printed_ms = [] ∧ ∃ m_better, m_better ∈ printed_ms ∧ m_better.last ≤ last✝ ∧ Factory.le F m_better.cost cost✝ = true
nestα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.W
h_now: ¬printed_ms = [] ∧ ∃ m_better, m_better ∈ printed_ms ∧ m_better.last ≤ last✝ ∧ Factory.le F m_better.cost cost✝ = true
nest(¬List.map (Meas.adjust_nest n) printed_ms = [] ∧ List.map (fun x => { last := x.last, cost := x.cost, doc := Doc.nest n x.doc, x := x.x, y := x.y }) printed_ms = List.map (Meas.adjust_nest n) printed_ms) ∧ ∃ m_better, m_better ∈ List.map (Meas.adjust_nest n) printed_ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i, n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left, h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c (i + n) { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.nest n w✝, x := x✝, y := y✝ }.x ≤ F.W
h_now: ¬printed_ms = [] ∧ ∃ m_better, m_better ∈ printed_ms ∧ m_better.last ≤ last✝ ∧ Factory.le F m_better.cost cost✝ = true
nestα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
n: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.nest n w✝) c i m
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c (i + n) (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
ml: MeasureSet
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
h_print: Resolve F (Doc.align d) c i ml
L✝: List Doc
h_widen: Widen d L✝
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = d_choiceless
w✝: Doc
h_left: w✝ ∈ L✝
h_right: Doc.align w✝ = d_choiceless
alignα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms✝: MeasureSet
h✝: Resolve F d c c ms✝
h_bad✝: i > F.W
align.align_taint∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms✝: MeasureSet
h✝: Resolve F d c c ms✝
h_ok✝: i ≤ F.W
align.align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) ms✝ = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h': Resolve F d c c ms'
h_ok✝: i ≤ F.W∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) ms' = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
ms': MeasureSet
h': Resolve F d c c ms'
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) ms' = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h': Resolve F d c c ms'
h_ok✝: i ≤ F.W∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) ms' = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)
tainted∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d c c (MeasureSet.set ms✝ h✝)
set∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h': Resolve F d c c ms'
h_ok✝: i ≤ F.W∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) ms' = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h✝: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.W
align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.W
align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.W
align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.W
align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.WMeasRender F w✝ c c ?m.53971Goals accomplished! 🐙α✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.W
this: { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.y ≤ F.W → { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.x ≤ F.W → ∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ } = true
align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_x: x✝ ≤ F.W
this: y✝ ≤ F.W → x✝ ≤ F.W → False
h_y: i ≤ F.W ∧ y✝ ≤ F.W
align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_x: x✝ ≤ F.W
this: y✝ ≤ F.W → x✝ ≤ F.W → False
h_y✝: i ≤ F.W ∧ y✝ ≤ F.W
left✝: i ≤ F.W
h_y: y✝ ≤ F.W
align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
m✝: Meas
h': Resolve F d c c (MeasureSet.tainted m✝)∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝) = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h': Resolve F d c c ms'
h_ok✝: i ≤ F.W∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) ms' = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')α✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h✝: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.W
alignα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.W
alignα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.W
h_now: { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.y ≤ F.W → { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }.x ≤ F.W → ∃ ms h, MeasureSet.set printed_ms h_render' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ } = true
alignα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_x: x✝ ≤ F.W
h_now: y✝ ≤ F.W → x✝ ≤ F.W → ¬printed_ms = [] ∧ ∃ m_better, m_better ∈ printed_ms ∧ m_better.last ≤ last✝ ∧ Factory.le F m_better.cost cost✝ = true
h_y: i ≤ F.W ∧ y✝ ≤ F.W
alignα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_x: x✝ ≤ F.W
h_now: y✝ ≤ F.W → x✝ ≤ F.W → ¬printed_ms = [] ∧ ∃ m_better, m_better ∈ printed_ms ∧ m_better.last ≤ last✝ ∧ Factory.le F m_better.cost cost✝ = true
h_y✝: i ≤ F.W ∧ y✝ ≤ F.W
left✝: i ≤ F.W
h_y: y✝ ≤ F.W
alignα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_x: x✝ ≤ F.W
h_y✝: i ≤ F.W ∧ y✝ ≤ F.W
left✝: i ≤ F.W
h_y: y✝ ≤ F.W
h_now: ¬printed_ms = [] ∧ ∃ m_better, m_better ∈ printed_ms ∧ m_better.last ≤ last✝ ∧ Factory.le F m_better.cost cost✝ = true
alignα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_x: x✝ ≤ F.W
h_y✝: i ≤ F.W ∧ y✝ ≤ F.W
left✝: i ≤ F.W
h_y: y✝ ≤ F.W
h_now: ¬printed_ms = [] ∧ ∃ m_better, m_better ∈ printed_ms ∧ m_better.last ≤ last✝ ∧ Factory.le F m_better.cost cost✝ = true
align(¬List.map (Meas.adjust_align i) printed_ms = [] ∧ List.map (Meas.adjust_align i) printed_ms = List.map (Meas.adjust_align i) printed_ms) ∧ ∃ m_better, m_better ∈ List.map (Meas.adjust_align i) printed_ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_x: x✝ ≤ F.W
h_y✝: i ≤ F.W ∧ y✝ ≤ F.W
left✝: i ≤ F.W
h_y: y✝ ≤ F.W
h_now: ¬printed_ms = [] ∧ ∃ m_better, m_better ∈ printed_ms ∧ m_better.last ≤ last✝ ∧ Factory.le F m_better.cost cost✝ = true
alignα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_ok✝: i ≤ F.W
h_mem: w✝ ∈ L✝
printed_ms: List Meas
h_render': printed_ms ≠ []
h': Resolve F d c c (MeasureSet.set printed_ms h_render')∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set printed_ms h_render') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h: Resolve F d c c ms'
h_bad: i > F.W∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h: Resolve F d c c ms'
h_bad: i > F.W
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h✝: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.W
align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h: Resolve F d c c ms'
h_bad: i > F.W∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h: Resolve F d c c ms'
h_bad: i > F.W
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_y: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.y ≤ F.W
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.W
align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h: Resolve F d c c ms'
h_bad: i > F.W∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h: Resolve F d c c ms'
h_bad: i > F.W
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_render: MeasRender F w✝ c c { last := last✝, cost := cost✝, doc := w✝, x := x✝, y := y✝ }
h_x: { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ }.x ≤ F.W
h_y: i ≤ F.W ∧ y✝ ≤ F.W
align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h: Resolve F d c c ms'
h_bad: i > F.W∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
i: ℕ
w✝: Doc
ms': MeasureSet
h_bad: i > F.W
last✝: ℕ
cost✝: α✝
x✝, y✝: ℕ
h_y: i ≤ F.W ∧ y✝ ≤ F.W
align∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := last✝, cost := cost✝, doc := Doc.align w✝, x := x✝, y := max i y✝ } = trueα✝: Type
F: Factory α✝
d✝: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d: Doc
L✝: List Doc
h_widen: Widen d L✝
w✝: Doc
h_left: w✝ ∈ L✝
h_render: MeasRender F (Doc.align w✝) c i m
h_mem: ∃ a, a ∈ L✝ ∧ Doc.align a = Doc.align w✝
ms': MeasureSet
h: Resolve F d c c ms'
h_bad: i > F.W∃ ms, (∃ x, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms') = MeasureSet.set ms x) ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
h_print: Resolve F (Doc.choice d₁ d₂) c i ml
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
choiceα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms✝, ms'✝: MeasureSet
h_left✝: Resolve F d₁ c i ms✝
h_right✝: Resolve F d₂ c i ms'✝
choice.choice∃ ms h, MeasureSet.union F ms✝ ms'✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms₁, ms₂: MeasureSet
h_left: Resolve F d₁ c i ms₁
h_right: Resolve F d₂ c i ms₂∃ ms h, MeasureSet.union F ms₁ ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
tainted∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
set∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms₁, ms₂: MeasureSet
h_left: Resolve F d₁ c i ms₁
h_right: Resolve F d₂ c i ms₂∃ ms h, MeasureSet.union F ms₁ ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h✝: d_choiceless ∈ L₁✝
inl∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h✝: d_choiceless ∈ L₂✝
inr∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₁✝∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₁✝∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₁✝MeasRender F d_choiceless c i ?m.94380Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₁✝∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
w✝¹: List Meas
w✝: w✝¹ ≠ []
left✝: MeasureSet.tainted m✝ = MeasureSet.set w✝¹ w✝
right✝: ∃ m_better, m_better ∈ w✝¹ ∧ dominates F m_better m = true∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₁✝∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₂✝∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₂✝∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₂✝MeasRender F d_choiceless c i ?m.98688Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₂✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₂✝∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right✝: Resolve F d₂ c i ms₂
m✝: Meas
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₂✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms: List Meas
w✝: ms ≠ []
h_left: ms₂ = MeasureSet.set ms w✝
h_right: ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₂✝∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₂✝
ms: List Meas
w✝: ms ≠ []
h_right✝: ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_right: Resolve F d₂ c i (MeasureSet.set ms w✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m = true∃ ms_1 h, MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms w✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₂✝∃ ms h, MeasureSet.union F (MeasureSet.tainted m✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₂✝
ms: List Meas
w✝: ms ≠ []
h_right✝: ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_right: Resolve F d₂ c i (MeasureSet.set ms w✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m = true∃ ms_1 h, MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms w✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_mem: d_choiceless ∈ L₂✝
ms: List Meas
w✝: ms ≠ []
h_right✝: ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_right: Resolve F d₂ c i (MeasureSet.set ms w✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m = truems ≠ []Goals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms₁, ms₂: MeasureSet
h_left: Resolve F d₁ c i ms₁
h_right: Resolve F d₂ c i ms₂∃ ms h, MeasureSet.union F ms₁ ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)
h✝: d_choiceless ∈ L₁✝
inl∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝¹) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)
h✝: d_choiceless ∈ L₂✝
inr∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝¹) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝MeasRender F d_choiceless c i ?m.105593Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)
tainted∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
set∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_left': ms✝ = ms_leftα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)
w✝: ms✝ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝ ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)
w✝: ms✝ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝ ∧ dominates F m_better m = true
leftα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)
w✝: ms✝ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝ ∧ dominates F m_better m = true
rightα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)
w✝: ms✝ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝ ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)
w✝: ms✝ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝ ∧ dominates F m_better m = true
leftα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)
w✝: ms✝ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝ ∧ dominates F m_better m = true
rightα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)
w✝: ms✝ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝ ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₁✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = true∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = true
leftα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = true
rightα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = true
hα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
right✝: dominates F m_better m = true
w✝: ms✝¹ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝¹ ∧ dominates F m_better m = true
h_mem_b: m_better ∈ ms✝¹
reflα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem✝: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better✝: Meas
right✝: dominates F m_better✝ m = true
w✝: ms✝¹ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝¹ ∧ dominates F m_better m = true
h_mem_b: m_better✝ ∈ ms✝¹
m_better: Meas
h_mem: m_better ∈ merge F (ms✝¹, ms✝)
h_dom: dominates F m_better m_better✝ = true
reflα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem✝: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better✝: Meas
right✝: dominates F m_better✝ m = true
w✝: ms✝¹ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝¹ ∧ dominates F m_better m = true
h_mem_b: m_better✝ ∈ ms✝¹
m_better: Meas
h_mem: m_better ∈ merge F (ms✝¹, ms✝)
h_dom: dominates F m_better m_better✝ = true
reflα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem✝: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better✝: Meas
right✝: dominates F m_better✝ m = true
w✝: ms✝¹ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝¹ ∧ dominates F m_better m = true
h_mem_b: m_better✝ ∈ ms✝¹
m_better: Meas
h_mem: m_better ∈ merge F (ms✝¹, ms✝)
h_dom: dominates F m_better m_better✝ = true
reflα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms_left: List Meas
w✝: ms_left ≠ []
h_left': MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms_left w✝
h_right': ∃ m_better, m_better ∈ ms_left ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better: Meas
h_mem_b: m_better ∈ ms_left
right✝: dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem✝: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better✝: Meas
right✝: dominates F m_better✝ m = true
w✝: ms✝¹ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝¹ ∧ dominates F m_better m = true
h_mem_b: m_better✝ ∈ ms✝¹
m_better: Meas
h_mem: m_better ∈ merge F (ms✝¹, ms✝)
h_dom: dominates F m_better m_better✝ = true
reflα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem✝: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better✝: Meas
right✝: dominates F m_better✝ m = true
w✝: ms✝¹ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝¹ ∧ dominates F m_better m = true
h_mem_b: m_better✝ ∈ ms✝¹
m_better: Meas
h_mem: m_better ∈ merge F (ms✝¹, ms✝)
h_dom: dominates F m_better m_better✝ = true
refl.hα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem✝: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better✝: Meas
right✝: dominates F m_better✝ m = true
w✝: ms✝¹ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝¹ ∧ dominates F m_better m = true
h_mem_b: m_better✝ ∈ ms✝¹
m_better: Meas
h_mem: m_better ∈ merge F (ms✝¹, ms✝)
h_dom: dominates F m_better m_better✝ = true
refl.h'α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem✝: d_choiceless ∈ L₁✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝¹ h✝¹ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
m_better✝: Meas
right✝: dominates F m_better✝ m = true
w✝: ms✝¹ ≠ []
h_right': ∃ m_better, m_better ∈ ms✝¹ ∧ dominates F m_better m = true
h_mem_b: m_better✝ ∈ ms✝¹
m_better: Meas
h_mem: m_better ∈ merge F (ms✝¹, ms✝)
h_dom: dominates F m_better m_better✝ = true
refl.m₂MeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ L₁✝ ∨ d_choiceless ∈ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₂✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₂✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₂✝MeasRender F d_choiceless c i ?m.131477Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₂✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₂✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₂✝
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
w✝¹: List Meas
w✝: w✝¹ ≠ []
h_left': ms₂ = MeasureSet.set w✝¹ w✝
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₂✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.tainted m✝ = MeasureSet.set w✝¹ w✝
tainted∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝
set∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₂✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
m✝: Meas
h_right: Resolve F d₂ c i (MeasureSet.tainted m✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.tainted m✝ = MeasureSet.set w✝¹ w✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h_right: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_mem: d_choiceless ∈ L₂✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝
leftα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝
rightα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝
hα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝∃ ms h, MeasureSet.union F (MeasureSet.set ms✝¹ h✝¹) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
h✝: w✝¹ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
reflα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)
h_mem✝: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better✝: Meas
h_mem_b: m_better✝ ∈ w✝¹
right✝: dominates F m_better✝ m = true
h✝: w✝¹ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m_better: Meas
h_mem: m_better ∈ merge F (ms✝, w✝¹)
h_dom: dominates F m_better m_better✝ = true
reflα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)
h_mem✝: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better✝: Meas
h_mem_b: m_better✝ ∈ w✝¹
right✝: dominates F m_better✝ m = true
h✝: w✝¹ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m_better: Meas
h_mem: m_better ∈ merge F (ms✝, w✝¹)
h_dom: dominates F m_better m_better✝ = true
reflα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)
h_mem✝: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better✝: Meas
h_mem_b: m_better✝ ∈ w✝¹
right✝: dominates F m_better✝ m = true
h✝: w✝¹ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m_better: Meas
h_mem: m_better ∈ merge F (ms✝, w✝¹)
h_dom: dominates F m_better m_better✝ = true
reflα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝¹ h✝¹)
h_mem: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better: Meas
h_mem_b: m_better ∈ w✝¹
right✝: dominates F m_better m = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set ms✝ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
h_left': MeasureSet.set ms✝ h✝ = MeasureSet.set w✝¹ w✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)
h_mem✝: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better✝: Meas
h_mem_b: m_better✝ ∈ w✝¹
right✝: dominates F m_better✝ m = true
h✝: w✝¹ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m_better: Meas
h_mem: m_better ∈ merge F (ms✝, w✝¹)
h_dom: dominates F m_better m_better✝ = true
reflα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)
h_mem✝: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better✝: Meas
h_mem_b: m_better✝ ∈ w✝¹
right✝: dominates F m_better✝ m = true
h✝: w✝¹ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m_better: Meas
h_mem: m_better ∈ merge F (ms✝, w✝¹)
h_dom: dominates F m_better m_better✝ = true
refl.hα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)
h_mem✝: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better✝: Meas
h_mem_b: m_better✝ ∈ w✝¹
right✝: dominates F m_better✝ m = true
h✝: w✝¹ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m_better: Meas
h_mem: m_better ∈ merge F (ms✝, w✝¹)
h_dom: dominates F m_better m_better✝ = true
refl.h'α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h✝¹)
h_mem✝: d_choiceless ∈ L₂✝
w✝¹: List Meas
w✝: w✝¹ ≠ []
m_better✝: Meas
h_mem_b: m_better✝ ∈ w✝¹
right✝: dominates F m_better✝ m = true
h✝: w✝¹ ≠ []
h_right: Resolve F d₂ c i (MeasureSet.set w✝¹ h✝)
this: m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, MeasureSet.set w✝¹ h✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = true
m_better: Meas
h_mem: m_better ∈ merge F (ms✝, w✝¹)
h_dom: dominates F m_better m_better✝ = true
refl.m₂MeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i ml
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
h_mem: d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝)
concatα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i ml
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝)
concatα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i ml
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: ∃ a, a ∈ L₁✝ ∧ ∃ a_1, a_1 ∈ L₂✝ ∧ Doc.concat a a_1 = d_choiceless
concatα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i ml
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
h_mem: ∃ a, a ∈ L₁✝ ∧ ∃ a_1, a_1 ∈ L₂✝ ∧ Doc.concat a a_1 = d_choiceless
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_concat: Doc.concat d_left d_right = d_choiceless
concatα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d_choiceless: Doc
m: Meas
h_render: MeasRender F d_choiceless c i m
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i ml
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_concat: Doc.concat d_left d_right = d_choiceless
concatα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i ml
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
concatα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint✝: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right✝: Resolve F d₂ m✝.last i ms'✝
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝)
concat.concat_taint∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i ml
concat.concat_setα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right': Resolve F d₂ m✝.last i ms'✝
h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right': Resolve F d₂ m✝.last i ms'✝
h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)
m₁✝, m₂✝: Meas
h₂✝: MeasRender F d_right m₁✝.last i m₂✝
h₁✝: MeasRender F d_left c i m₁✝
h✝: m = Meas.concat F m₁✝ m₂✝
concat∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right': Resolve F d₂ m✝.last i ms'✝
h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right': Resolve F d₂ m✝.last i ms'✝
h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)
m₁✝, m₂✝: Meas
hh_right: MeasRender F d_right m₁✝.last i m₂✝
hh_left: MeasRender F d_left c i m₁✝
hh: m = Meas.concat F m₁✝ m₂✝
concat∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right': Resolve F d₂ m✝.last i ms'✝
h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right': Resolve F d₂ m✝.last i ms'✝
h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)
m₁✝, m₂✝: Meas
hh_right: MeasRender F d_right m₁✝.last i m₂✝
hh_left: MeasRender F d_left c i m₁✝
h_y: (Meas.concat F m₁✝ m₂✝).y ≤ F.W
h_x: (Meas.concat F m₁✝ m₂✝).x ≤ F.W
concat∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁✝ m₂✝) = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right': Resolve F d₂ m✝.last i ms'✝
h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right': Resolve F d₂ m✝.last i ms'✝
h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)
m₁✝, m₂✝: Meas
hh_right: MeasRender F d_right m₁✝.last i m₂✝
hh_left: MeasRender F d_left c i m₁✝
h_y: m₁✝.y ≤ F.W ∧ m₂✝.y ≤ F.W
h_x: m₁✝.x ≤ F.W ∧ m₂✝.x ≤ F.W
concat∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁✝ m₂✝) = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right': Resolve F d₂ m✝.last i ms'✝
h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right': Resolve F d₂ m✝.last i ms'✝
h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)
m₁✝, m₂✝: Meas
hh_right: MeasRender F d_right m₁✝.last i m₂✝
hh_left: MeasRender F d_left c i m₁✝
h_y: m₁✝.y ≤ F.W ∧ m₂✝.y ≤ F.W
h_x: m₁✝.x ≤ F.W ∧ m₂✝.x ≤ F.W
w✝¹: List Meas
w✝: w✝¹ ≠ []
left✝: MeasureSet.tainted m✝ = MeasureSet.set w✝¹ w✝
right✝: ∃ m_better, m_better ∈ w✝¹ ∧ dominates F m_better m₁✝ = true
concat∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁✝ m₂✝) = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right': Resolve F d₂ m✝.last i ms'✝
h_left': Resolve F d₁ c i (MeasureSet.tainted m✝)∃ ms h, MeasureSet.tainted (Meas.concat F m✝ m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i mlα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁✝, m₂✝: Meas
h₂✝: MeasRender F d_right m₁✝.last i m₂✝
h₁✝: MeasRender F d_left c i m₁✝
h✝: m = Meas.concat F m₁✝ m₂✝
concatα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i mlα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
hh: m = Meas.concat F m₁ m₂
concatα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i mlα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_y: (Meas.concat F m₁ m₂).y ≤ F.W
h_x: (Meas.concat F m₁ m₂).x ≤ F.W
concat∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i mlα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
concat∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i mlα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
ms_left: List Meas
h_mem_left: ms_left ≠ []
h_eq: MeasureSet.set ms h_non_empty = MeasureSet.set ms_left h_mem_left
m_better: Meas
h_mem': m_better ∈ ms_left
h_dom: dominates F m_better m₁ = true
concat∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i mlα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
h_render: MeasRender F (Doc.concat d_left d_right) c i m
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i mlα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_printResolveConcat F ?concat.refl.ms ?concat.refl.d₂ ?concat.refl.i mlα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_widenWiden ?concat.refl.d₂ ?concat.refl.L₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_choiceless?concat.refl.d_right ∈ ?concat.refl.L₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_renderMeasRender F ?concat.refl.d_right m₁.last ?concat.refl.i m₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_xα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_yα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_domα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_mem?concat.refl.m_better_left ∈ ?concat.refl.msα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.msList Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.d₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.iα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.L₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.d_rightα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.m_better_leftMeasα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_printResolveConcat F ?concat.refl.ms ?concat.refl.d₂ ?concat.refl.i mlα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_widenWiden ?concat.refl.d₂ ?concat.refl.L₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_choiceless?concat.refl.d_right ∈ ?concat.refl.L₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_renderMeasRender F ?concat.refl.d_right m₁.last ?concat.refl.i m₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_xα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_yα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_domα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.h_mem?concat.refl.m_better_left ∈ ?concat.refl.msα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.msList Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.d₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.iα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.L₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.d_rightα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl.m_better_leftMeasα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ml: MeasureSet
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
d_left: Doc
h_left: d_left ∈ L₁✝
d_right: Doc
h_right: d_right ∈ L₂✝
ms: List Meas
h_non_empty: ms ≠ []
h_left': Resolve F d₁ c i (MeasureSet.set ms h_non_empty)
h_right': ResolveConcat F ms d₂ i ml
m₁, m₂: Meas
hh_right: MeasRender F d_right m₁.last i m₂
hh_left: MeasRender F d_left c i m₁
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
m_better: Meas
h_dom: dominates F m_better m₁ = true
h_mem_left: ms ≠ []
h_mem': m_better ∈ ms
concat.refl∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = truetheoremGoals accomplished! 🐙ResolveConcat_optimal (ResolveConcat_optimal: ∀ {α : Type} {F : Factory α} {ms : List Meas} {d₂ : Doc} {i : ℕ} {ml : MeasureSet} {L₂ : List Doc} {d_right : Doc} {m₂ m_better_left m₁ : Meas}, ResolveConcat F ms d₂ i ml → Widen d₂ L₂ → d_right ∈ L₂ → MeasRender F d_right m₁.last i m₂ → m₁.x ≤ F.W ∧ m₂.x ≤ F.W → m₁.y ≤ F.W ∧ m₂.y ≤ F.W → dominates F m_better_left m₁ = true → m_better_left ∈ ms → ∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueh_print: ResolveConcath_print: ResolveConcat F ms d₂ i mlFF: ?m.309msms: ?m.316d₂d₂: ?m.323ii: ?m.329ml) (ml: ?m.335h_widen: Widenh_widen: Widen d₂ L₂d₂d₂: ?m.323L₂) (L₂: ?m.344h_choiceless:h_choiceless: d_right ∈ L₂d_right ∈d_right: ?m.369L₂) (L₂: ?m.344h_render: MeasRenderh_render: MeasRender F d_right (sorryAx ℕ true) i m₂FF: ?m.309d_rightd_right: ?m.369m₁m₁: ?m.554.lastm₁.last: ℕii: ?m.329m₂) (h_x:m₂: ?m.408m₁m₁: ?m.554.x ≤m₁.x: unknown metavariable '?_uniq.522'F.W ∧F: ?m.309m₂.x ≤m₂: ?m.408F.W) (h_y:F: ?m.309m₁m₁: ?m.554.y ≤m₁.y: unknown metavariable '?_uniq.538'F.W ∧F: ?m.309m₂.y ≤m₂: ?m.408F.W) (h_dom: dominatesF: ?m.309FF: ?m.309m_better_leftm_better_left: ?m.483m₁) (m₁: ?m.554h_mem:h_mem: m_better_left ∈ msm_better_left ∈m_better_left: ?m.483ms) : ∃ms: ?m.316msms: ?m.669h,h: ?m.674ml = MeasureSet.setml: ?m.335msms: ?m.669h ∧ ∃h: ?m.674m_better,m_better: ?m.708m_better ∈m_better: ?m.708ms ∧ dominatesms: ?m.669FF: ?m.309m_better (Meas.concatm_better: ?m.708FF: ?m.309m₁m₁: ?m.554m₂) :=m₂: ?m.408Goals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ml: MeasureSet
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_print: ResolveConcat F ms d₂ i ml
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
h_mem: m_better_left ∈ ms∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
ml: MeasureSet
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
m✝: Meas
h_mem: m_better_left ∈ [m✝]
h_current✝: ResolveConcatOne F d₂ m✝ i ml
one∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr✝: MeasureSet
m✝: Meas
msr'✝: MeasureSet
h_mem: m_better_left ∈ m✝ :: ms✝
h_rest✝: ResolveConcat F ms✝ d₂ i msr✝
h_current✝: ResolveConcatOne F d₂ m✝ i msr'✝
cons∃ ms h, MeasureSet.union F msr'✝ msr✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ml: MeasureSet
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_print: ResolveConcat F ms d₂ i ml
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
h_mem: m_better_left ∈ ms∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
ml: MeasureSet
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
m✝: Meas
h_mem: m_better_left ∈ [m✝]
h_print: ResolveConcatOne F d₂ m✝ i ml∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
ml: MeasureSet
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
m✝: Meas
h_print: ResolveConcatOne F d₂ m✝ i ml
h_mem: m_better_left = m✝∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
ml: MeasureSet
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
m✝: Meas
h_mem: m_better_left ∈ [m✝]
h_print: ResolveConcatOne F d₂ m✝ i ml∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
ml: MeasureSet
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
h_print: ResolveConcatOne F d₂ m_better_left i ml∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
ml: MeasureSet
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
m✝: Meas
h_mem: m_better_left ∈ [m✝]
h_print: ResolveConcatOne F d₂ m✝ i ml∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ml: MeasureSet
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_print: ResolveConcat F ms d₂ i ml
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
h_mem: m_better_left ∈ ms∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr': MeasureSet
the_m: Meas
msr: MeasureSet
h_mem: m_better_left ∈ the_m :: ms✝
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ the_m i msr∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr', msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ m_better_left i msr
head∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr': MeasureSet
the_m: Meas
msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ the_m i msr
a✝: List.Mem m_better_left ms✝
tail∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr': MeasureSet
the_m: Meas
msr: MeasureSet
h_mem: m_better_left ∈ the_m :: ms✝
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ the_m i msr∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr', msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ m_better_left i msr∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr', msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ m_better_left i msr
this: ∃ ms h, msr = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr', msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ m_better_left i msr∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr', msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ m_better_left i msr
this: ∃ ms h, msr = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms: List Meas
w✝: ms ≠ []
h_eq: msr = MeasureSet.set ms w✝
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr', msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ m_better_left i msr∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr': MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) msr' = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr', msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ m_better_left i msr∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
tainted∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.tainted m✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
set∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr', msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ m_better_left i msr∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.tainted m✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.tainted m✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)ms ≠ []Goals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr', msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ m_better_left i msr∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
leftα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
rightα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
hα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝Goals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms w✝) (MeasureSet.set ms✝ h✝) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
m: Meas
hh: m ∈ ms ∧ dominates F m (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
m: Meas
hh: m ∈ ms ∧ dominates F m (Meas.concat F m₁ m₂) = true
mm: Meas
hhh: mm ∈ merge F (ms, ms✝) ∧ dominates F mm m = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
m: Meas
hh: m ∈ ms ∧ dominates F m (Meas.concat F m₁ m₂) = true
mm: Meas
hhh: mm ∈ merge F (ms, ms✝) ∧ dominates F mm m = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
m: Meas
hh: m ∈ ms ∧ dominates F m (Meas.concat F m₁ m₂) = true
mm: Meas
hhh: mm ∈ merge F (ms, ms✝) ∧ dominates F mm m = truedominates F mm (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
m: Meas
hh: m ∈ ms ∧ dominates F m (Meas.concat F m₁ m₂) = true
mm: Meas
hhh: mm ∈ merge F (ms, ms✝) ∧ dominates F mm m = true
hα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
m: Meas
hh: m ∈ ms ∧ dominates F m (Meas.concat F m₁ m₂) = true
mm: Meas
hhh: mm ∈ merge F (ms, ms✝) ∧ dominates F mm m = true
h'dominates F ?m₂ (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
m: Meas
hh: m ∈ ms ∧ dominates F m (Meas.concat F m₁ m₂) = true
mm: Meas
hhh: mm ∈ merge F (ms, ms✝) ∧ dominates F mm m = true
m₂Measα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
m: Meas
hh: m ∈ ms ∧ dominates F m (Meas.concat F m₁ m₂) = true
mm: Meas
hhh: mm ∈ merge F (ms, ms✝) ∧ dominates F mm m = true
hα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
m: Meas
hh: m ∈ ms ∧ dominates F m (Meas.concat F m₁ m₂) = true
mm: Meas
hhh: mm ∈ merge F (ms, ms✝) ∧ dominates F mm m = true
h'dominates F ?m₂ (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
m: Meas
hh: m ∈ ms ∧ dominates F m (Meas.concat F m₁ m₂) = true
mm: Meas
hhh: mm ∈ merge F (ms, ms✝) ∧ dominates F mm m = true
m₂MeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹, ms: List Meas
w✝: ms ≠ []
h_other: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_print: ResolveConcatOne F d₂ m_better_left i (MeasureSet.set ms w✝)
this: ∃ ms_1 h, MeasureSet.set ms w✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms
h_pareto': pareto F ms✝
m: Meas
hh: m ∈ ms ∧ dominates F m (Meas.concat F m₁ m₂) = true
mm: Meas
hhh: mm ∈ merge F (ms, ms✝) ∧ dominates F mm m = true
h'dominates F m (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr': MeasureSet
the_m: Meas
msr: MeasureSet
h_mem: m_better_left ∈ the_m :: ms✝
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ the_m i msr∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr': MeasureSet
the_m: Meas
msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ the_m i msr
h_mem: List.Mem m_better_left ms✝∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr': MeasureSet
the_m: Meas
msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ the_m i msr
h_mem: List.Mem m_better_left ms✝
ms: List Meas
h_non_empty: ms ≠ []
h₁: msr' = MeasureSet.set ms h_non_empty
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr': MeasureSet
the_m: Meas
msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ the_m i msr
h_mem: List.Mem m_better_left ms✝∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
the_m: Meas
msr: MeasureSet
h_print: ResolveConcatOne F d₂ the_m i msr
h_mem: List.Mem m_better_left ms✝
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h_non_empty)∃ ms_1 h, MeasureSet.union F msr (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr': MeasureSet
the_m: Meas
msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ the_m i msr
h_mem: List.Mem m_better_left ms✝∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h_non_empty)
m✝: Meas
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.tainted m✝)
tainted∃ ms_1 h, MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
set∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr': MeasureSet
the_m: Meas
msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ the_m i msr
h_mem: List.Mem m_better_left ms✝∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h_non_empty)
m✝: Meas
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.tainted m✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h_non_empty)
m'✝: Meas
h✝: Resolve F d₂ the_m.last i (MeasureSet.tainted m'✝)
tainted∃ ms_1 h, MeasureSet.union F (MeasureSet.tainted (Meas.concat F the_m m'✝)) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h_non_empty)
m✝: Meas
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.tainted m✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝: List Meas
msr': MeasureSet
the_m: Meas
msr: MeasureSet
h_rest: ResolveConcat F ms✝ d₂ i msr'
h_print: ResolveConcatOne F d₂ the_m i msr
h_mem: List.Mem m_better_left ms✝∃ ms h, MeasureSet.union F msr msr' = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝
leftα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝
rightα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝
hα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝Goals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)∃ ms_1 h, MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms h_non_empty) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F msα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝Goals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝?m.195180 ∈ msα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝?m.195180 ∈ msα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝?m.195180 ∈ msGoals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝
this: ∃ m_better_1, m_better_1 ∈ merge F (ms✝, ms) ∧ dominates F m_better_1 m_better = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝
this: ∃ m_better_1, m_better_1 ∈ merge F (ms✝, ms) ∧ dominates F m_better_1 m_better = true
mm: Meas
hh: mm ∈ merge F (ms✝, ms) ∧ dominates F mm m_better = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝
this: ∃ m_better_1, m_better_1 ∈ merge F (ms✝, ms) ∧ dominates F m_better_1 m_better = true
mm: Meas
hh: mm ∈ merge F (ms✝, ms) ∧ dominates F mm m_better = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝
this: ∃ m_better_1, m_better_1 ∈ merge F (ms✝, ms) ∧ dominates F m_better_1 m_better = true
mm: Meas
hh: mm ∈ merge F (ms✝, ms) ∧ dominates F mm m_better = truedominates F mm (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝
this: ∃ m_better_1, m_better_1 ∈ merge F (ms✝, ms) ∧ dominates F m_better_1 m_better = true
mm: Meas
hh: mm ∈ merge F (ms✝, ms) ∧ dominates F mm m_better = true
hα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝
this: ∃ m_better_1, m_better_1 ∈ merge F (ms✝, ms) ∧ dominates F m_better_1 m_better = true
mm: Meas
hh: mm ∈ merge F (ms✝, ms) ∧ dominates F mm m_better = true
h'dominates F ?m₂ (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝
this: ∃ m_better_1, m_better_1 ∈ merge F (ms✝, ms) ∧ dominates F m_better_1 m_better = true
mm: Meas
hh: mm ∈ merge F (ms✝, ms) ∧ dominates F mm m_better = true
m₂Measα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝
this: ∃ m_better_1, m_better_1 ∈ merge F (ms✝, ms) ∧ dominates F m_better_1 m_better = true
mm: Meas
hh: mm ∈ merge F (ms✝, ms) ∧ dominates F mm m_better = true
hα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝
this: ∃ m_better_1, m_better_1 ∈ merge F (ms✝, ms) ∧ dominates F m_better_1 m_better = true
mm: Meas
hh: mm ∈ merge F (ms✝, ms) ∧ dominates F mm m_better = true
h'dominates F ?m₂ (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝
this: ∃ m_better_1, m_better_1 ∈ merge F (ms✝, ms) ∧ dominates F m_better_1 m_better = true
mm: Meas
hh: mm ∈ merge F (ms✝, ms) ∧ dominates F mm m_better = true
m₂MeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto: pareto F ms✝α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
L₂: List Doc
d_right: Doc
m₂, m_better_left, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better_left m₁ = true
ms✝¹: List Meas
the_m: Meas
h_mem: List.Mem m_better_left ms✝¹
ms: List Meas
h_non_empty: ms ≠ []
h₂: ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms h_non_empty)
ms✝: List Meas
h✝: ms✝ ≠ []
h_print: ResolveConcatOne F d₂ the_m i (MeasureSet.set ms✝ h✝)
h_pareto✝: pareto F ms✝
m_better: Meas
h_better: m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = true
h_pareto': pareto F ms
h_pareto: pareto F ms✝
this: ∃ m_better_1, m_better_1 ∈ merge F (ms✝, ms) ∧ dominates F m_better_1 m_better = true
mm: Meas
hh: mm ∈ merge F (ms✝, ms) ∧ dominates F mm m_better = true
h'dominates F m_better (Meas.concat F m₁ m₂) = truetheoremGoals accomplished! 🐙ResolveConcatOne_optimal (ResolveConcatOne_optimal: ∀ {d₂ : Doc} {L₂ : List Doc} {d_right : Doc} {α : Type} {F : Factory α} {m_better : Meas} {i : ℕ} {ml : MeasureSet} {m₂ m₁ : Meas}, Widen d₂ L₂ → d_right ∈ L₂ → ResolveConcatOne F d₂ m_better i ml → MeasRender F d_right m₁.last i m₂ → m₁.x ≤ F.W ∧ m₂.x ≤ F.W → m₁.y ≤ F.W ∧ m₂.y ≤ F.W → dominates F m_better m₁ = true → ∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueh_widen: Widenh_widen: Widen d₂ L₂d₂d₂: ?m.820L₂) (L₂: ?m.824h_choiceless:h_choiceless: d_right ∈ L₂d_right ∈d_right: ?m.845L₂) (L₂: ?m.824h_print: ResolveConcatOneh_print: ResolveConcatOne F d₂ m_better i mlFF: ?m.880d₂d₂: ?m.820m_betterm_better: ?m.914ii: ?m.948ml) (ml: ?m.981h_render: MeasRenderh_render: MeasRender F d_right ?m.1127 i m₂FF: ?m.880d_rightd_right: ?m.845m₁m₁: ?m.1092.lastm₁.last: ℕii: ?m.948m₂) (m₂: ?m.1018h_x:h_x: unknown metavariable '?_uniq.1057'm₁m₁: ?m.1092.x ≤m₁.x: unknown metavariable '?_uniq.1057'F.W ∧F: ?m.880m₂.x ≤m₂: ?m.1018F.W) (h_y:F: ?m.880m₁m₁: ?m.1092.y ≤m₁.y: unknown metavariable '?_uniq.1076'F.W ∧F: ?m.880m₂.y ≤m₂: ?m.1018F.W) (h_dom: dominatesF: ?m.880FF: ?m.880m_betterm_better: ?m.914m₁) : ∃m₁: ?m.1092msms: ?m.1184h,h: ?m.1189ml = MeasureSet.setml: ?m.981msms: ?m.1184h ∧ ∃h: ?m.1189m_better,m_better: ?m.1224m_better ∈m_better: ?m.1224ms ∧ dominatesms: ?m.1184FF: ?m.880m_better (Meas.concatm_better: ?m.1224FF: ?m.880m₁m₁: ?m.1092m₂) :=m₂: ?m.1018Goals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_betterm_better.last ≤ m₁.lastd₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_betterm_better.last ≤ m₁.lastd₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_betterm_better.last ≤ m₁.lastd₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = truem_better.last ≤ m₁.lastd₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_betterm_better.last ≤ m₁.lastGoals accomplished! 🐙Goals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_betteri ≤ iGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = truem_better.last ≤ m₁.lastd₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = truem_better.last ≤ m₁.lastd₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = truem_better.last ≤ m₁.lastd₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = truem_better.last ≤ m₁.lastd₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = truem_better.last ≤ m₁.lastGoals accomplished! 🐙Goals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = truei ≤ iGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = truem₂.x ≤ F.WGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = truem₂.y ≤ F.WGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
m'✝: Meas
h✝: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)
tainted∃ ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h✝: Resolve F d₂ m_better.last i (MeasureSet.set ms✝ h_non_empty✝)
set∃ ms h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms✝) ≠ []) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
m'✝: Meas
h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)∃ ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
m'✝: Meas
h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)∃ ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
m'✝: Meas
h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)MeasRender F d_right m_better.last i m_result_betterGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
m'✝: Meas
h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)
this: ∃ ms h, MeasureSet.tainted m'✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m_result_better = true∃ ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
m'✝: Meas
h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)∃ ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
m'✝: Meas
h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)
this: ∃ ms h, MeasureSet.tainted m'✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m_result_better = true
w✝¹: List Meas
w✝: w✝¹ ≠ []
left✝: MeasureSet.tainted m'✝ = MeasureSet.set w✝¹ w✝
right✝: ∃ m_better, m_better ∈ w✝¹ ∧ dominates F m_better m_result_better = true∃ ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
m'✝: Meas
h_print: Resolve F d₂ m_better.last i (MeasureSet.tainted m'✝)∃ ms h, MeasureSet.tainted (Meas.concat F m_better m'✝) = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
ml: MeasureSet
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_print: ResolveConcatOne F d₂ m_better i ml
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)MeasRender F d_right m_better.last i m_result_betterGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
w✝: List Meas
h: w✝ ≠ []
h_left: MeasureSet.set ms h_non_empty✝ = MeasureSet.set w✝ h
m_better_right: Meas
h_better_right: m_better_right ∈ w✝ ∧ dominates F m_better_right m_result_better = true∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
refl∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
refl∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = truededup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = truededup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = truededup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
hList.map (fun m' => Meas.concat F m_better m') ms ≠ []d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = truededup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []Goals accomplished! 🐙Goals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
reflMeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) ∧ ∃ m_better_1, m_better_1 ∈ dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ∧ dominates F m_better_1 (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
refl∃ m_better_1, m_better_1 ∈ dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ∧ dominates F m_better_1 (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
h_pareto: pareto F ms
refl∃ m_better_1, m_better_1 ∈ dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ∧ dominates F m_better_1 (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
h_pareto: pareto F ms
h_cost: cost_increasing_non_strict F (List.map (fun m' => Meas.concat F m_better m') ms)
refl∃ m_better_1, m_better_1 ∈ dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ∧ dominates F m_better_1 (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
h_pareto: pareto F ms
h_cost: cost_increasing_non_strict F (List.map (fun m' => Meas.concat F m_better m') ms)
h_last: last_decreasing (List.map (fun m' => Meas.concat F m_better m') ms)
refl∃ m_better_1, m_better_1 ∈ dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ∧ dominates F m_better_1 (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
h_pareto: pareto F ms
h_cost: cost_increasing_non_strict F (List.map (fun m' => Meas.concat F m_better m') ms)
h_last: last_decreasing (List.map (fun m' => Meas.concat F m_better m') ms)
m_ult: Meas
h_mem_ult: m_ult ∈ dedup F (List.map (fun m' => Meas.concat F m_better m') ms)
h_dom_ult: dominates F m_ult ((fun m' => Meas.concat F m_better m') m_better_right) = true
refl∃ m_better_1, m_better_1 ∈ dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ∧ dominates F m_better_1 (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
h_pareto: pareto F ms
h_cost: cost_increasing_non_strict F (List.map (fun m' => Meas.concat F m_better m') ms)
h_last: last_decreasing (List.map (fun m' => Meas.concat F m_better m') ms)
m_ult: Meas
h_mem_ult: m_ult ∈ dedup F (List.map (fun m' => Meas.concat F m_better m') ms)
h_dom_ult: dominates F m_ult ((fun m' => Meas.concat F m_better m') m_better_right) = true
reflm_ult ∈ dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ∧ dominates F m_ult (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)
this: ∃ ms_1 h, MeasureSet.set ms h_non_empty✝ = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better m_result_better = true
m_better_right: Meas
h: ms ≠ []
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
h_pareto: pareto F ms
h_cost: cost_increasing_non_strict F (List.map (fun m' => Meas.concat F m_better m') ms)
h_last: last_decreasing (List.map (fun m' => Meas.concat F m_better m') ms)
m_ult: Meas
h_mem_ult: m_ult ∈ dedup F (List.map (fun m' => Meas.concat F m_better m') ms)
h_dom_ult: dominates F m_ult ((fun m' => Meas.concat F m_better m') m_better_right) = true
refldominates F m_ult (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁: Meas
h_dom: dominates F m_better m₁ = true
m_result_better: Meas
h_dom_better: dominates F m_result_better m₂ = true
ms: List Meas
m_better_right: Meas
h_better_right: m_better_right ∈ ms ∧ dominates F m_better_right m_result_better = true
m_ult: Meas
h_dom_ult: dominates F m_ult ((fun m' => Meas.concat F m_better m') m_better_right) = true
refldominates F m_ult (Meas.concat F m₁ m₂) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
reflm_ult.last ≤ m₂.last ∧ Factory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
refl.leftm_ult.last ≤ m₂.lastα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
refl.rightFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trued₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = truem_ult.last ≤ m₂.lastα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: m_ult.last ≤ m_better_right.lastm_ult.last ≤ m₂.lastα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = truem_ult.last ≤ m₂.lastα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: m_ult.last ≤ m_better_right.last
bb: m_better_right.last ≤ m_result_better.lastm_ult.last ≤ m₂.lastα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = truem_ult.last ≤ m₂.lastα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: m_ult.last ≤ m_better_right.last
bb: m_better_right.last ≤ m_result_better.last
cc: m_result_better.last ≤ m₂.lastm_ult.last ≤ m₂.lastα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = truem_ult.last ≤ m₂.lastα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = truem_ult.last ≤ m₂.lastGoals accomplished! 🐙d₂: Doc
L₂: List Doc
d_right: Doc
α✝: Type
F: Factory α✝
m_better: Meas
i: ℕ
m₂, m₁: Meas
h_widen: Widen d₂ L₂
h_choiceless: d_right ∈ L₂
h_render: MeasRender F d_right m₁.last i m₂
h_x: m₁.x ≤ F.W ∧ m₂.x ≤ F.W
h_y: m₁.y ≤ F.W ∧ m₂.y ≤ F.W
h_dom: dominates F m_better m₁ = true
h_is_choiceless: Choiceless d_right
m_result_better: Meas
h_render_better: MeasRender F d_right m_better.last i m_result_better
h_dom_better: dominates F m_result_better m₂ = true
h_dom_good: m_result_better.x ≤ F.W ∧ m_result_better.y ≤ F.W
ms: List Meas
h_non_empty✝: ms ≠ []
h_print: Resolve F d₂ m_better.last i (MeasureSet.set ms h_non_empty✝)∃ ms_1 h, MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m_better m') ms)) (_ : dedup F (List.map (fun m' => Meas.concat F m_better m') ms) ≠ []) = MeasureSet.set ms_1 h ∧ ∃ m_better, m_better ∈ ms_1 ∧ dominates F m_better (Meas.concat F m₁ m₂) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = trueFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = trueFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = trueFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = trueFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = trueFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = trueFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = trueFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = trueFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = trueFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
aFactory.le F m_ult.cost ?c₂ = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
aFactory.le F ?c₂ (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
c₂α✝α✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = trueFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
aFactory.le F m_ult.cost ?c₂ = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
aFactory.le F ?c₂ (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
c₂α✝Goals accomplished! 🐙α✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = trueFactory.le F m_ult.cost (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
aFactory.le F (Factory.concat F m_better.cost m_better_right.cost) (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.aFactory.le F m_better.cost m₁.cost = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.aFactory.le F m_better_right.cost m₂.cost = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
aFactory.le F (Factory.concat F m_better.cost m_better_right.cost) (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.aFactory.le F m_better.cost m₁.cost = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.aFactory.le F m_better_right.cost m₂.cost = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
aFactory.le F (Factory.concat F m_better.cost m_better_right.cost) (Factory.concat F m₁.cost m₂.cost) = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.aFactory.le F m_better_right.cost m₂.cost = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.a.aFactory.le F m_better_right.cost ?a.a.c₂✝ = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.a.aFactory.le F ?a.a.c₂✝ m₂.cost = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.a.c₂α✝α✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.aFactory.le F m_better_right.cost m₂.cost = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.a.aFactory.le F m_better_right.cost ?a.a.c₂✝ = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.a.aFactory.le F ?a.a.c₂✝ m₂.cost = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.a.c₂α✝Goals accomplished! 🐙α✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.aFactory.le F m_better_right.cost m₂.cost = trueα✝: Type
F: Factory α✝
m_better, m₂, m₁, m_result_better: Meas
ms: List Meas
m_better_right, m_ult: Meas
h_dom_ult: m_ult.last ≤ m_better_right.last ∧ Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
h_dom: m_better.last ≤ m₁.last ∧ Factory.le F m_better.cost m₁.cost = true
h_dom_better: m_result_better.last ≤ m₂.last ∧ Factory.le F m_result_better.cost m₂.cost = true
h_better_right: m_better_right ∈ ms ∧ m_better_right.last ≤ m_result_better.last ∧ Factory.le F m_better_right.cost m_result_better.cost = true
aa: Factory.le F m_ult.cost (Factory.concat F m_better.cost m_better_right.cost) = true
bb: Factory.le F m_better_right.cost m_result_better.cost = true
cc: Factory.le F m_result_better.cost m₂.cost = true
dd: Factory.le F m_better.cost m₁.cost = true
a.a.aFactory.le F m_result_better.cost m₂.cost = trueend termination_by Resolve_optimal => (Goals accomplished! 🐙d.size,d: Doc0,0: ?m.2479130) ResolveConcat_optimal => (0: ?m.247924d₂.size,d₂: Doc2,2: ?m.248330ms.length) ResolveConcatOne_optimal => (ms: List Measd₂.size,d₂: Doc1,1: ?m.2486600)0: ?m.248667